<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
    

      const p = new Promise((resolve, reject) => {
        resolve("22222222222222");
      });

      async function fn() {
        const mas = await p;
        console.log(mas);
      }
      fn();

      // async 通过try{}cathc{}捕获错误
      async function main() {
        const data = await Promise.resolve("hellow");
        console.log(data);
        return data;
      }
      main();
      // Promise { <pending> }
      // hellow
      try {
        async function test() {
          const zks = await new Promise((resolve, reject) => {
            return resolve("error");
          });
          return zks;
        }
        test().then((res) => console.log(res, "zzz"));
      } catch (error) {
        throw new Error(error);
      }

      // // 案例
      // function foo() {
      //     console.log(1);
      //     return 2
      // }
      // async function bar() {
      //     console.log(3);
      //     return Promise.resolve(4);
      // }
      // async function main() {
      //     console.log(5); //1. 先输出
      //     const v1 = await foo(); // 2. 调用foo函数 输出同步任务 log 1 然后return 进行堵塞 下面的代码不能执行
      //     console.log(v1); //3. 后面的代码不能执行 5. 再去输初
      //     const v2 = await bar(); // 6. 输出3 然后4
      //     console.log(v2);
      // }
      // main(); //结果5 1 6 2 3 4
      // console.log(6); //4. 输出 6





      
      // // import thenfile from 'then-fs';

      // // //简化 then操作  有await 必须有 async 不添加async返回的是promise实例
      // // // 在async中 第一个await之前的代码会同步执行 await之后的代码异步执行
      // // console.log('A');
      // // async function getFile() {
      // //     console.log('B');
      // //     const r1 = await thenfile.readFile('./测试文件/1.txt', 'utf-8');
      // //     console.log(r1);
      // //     const r2 = await thenfile.readFile('./测试文件/2.txt', 'utf-8');
      // //     console.log(r2);
      // //     const r3 = await thenfile.readFile('./测试文件/3.txt', 'utf-8');
      // //     console.log(r3);
      // //     console.log('D');
      // // }
      // // getFile();
      // // console.log('C');
    </script>
  </body>
</html>
